{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "1b6ac570-d0db-432d-9b1c-0bf9d788513d",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import glob\n",
    "import json\n",
    "import cv2\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "from PIL import Image, ImageDraw, ImageColor\n",
    "from tqdm import tqdm_notebook\n",
    "from scipy.stats import rankdata"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "18168d11-ca68-44ce-ad80-f72081c52c72",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_json = glob.glob('./学术文档篇章级结构恢复挑战赛公开数据/train-anno/*.json')\n",
    "train_img = glob.glob('./学术文档篇章级结构恢复挑战赛公开数据/train-image/*/*.png')\n",
    "\n",
    "test_json = glob.glob('./学术文档篇章级结构恢复挑战赛公开数据/test-anno/*.json')\n",
    "test_img = glob.glob('./学术文档篇章级结构恢复挑战赛公开数据/test-image/*/*.png')\n",
    "\n",
    "train_json.sort()\n",
    "train_img.sort()\n",
    "\n",
    "test_json.sort()\n",
    "test_img.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "id": "134e1304-ef85-44e3-9ccb-859593cc024d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(50, 735)"
      ]
     },
     "execution_count": 149,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(test_json), len(test_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "id": "5b577809-2adb-417e-b8ec-2ef3c86fdc73",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(500, 7043)"
      ]
     },
     "execution_count": 150,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(train_json), len(train_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "id": "ca4d449f-6413-4c29-b52b-ed43ccf44186",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['./学术文档篇章级结构恢复挑战赛公开数据/train-anno/0.json',\n",
       " './学术文档篇章级结构恢复挑战赛公开数据/train-anno/1.json',\n",
       " './学术文档篇章级结构恢复挑战赛公开数据/train-anno/10.json']"
      ]
     },
     "execution_count": 151,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_json[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "id": "974be79b-529e-4682-861f-6f5448d6a0b1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['./学术文档篇章级结构恢复挑战赛公开数据/train-image/0/0.png',\n",
       " './学术文档篇章级结构恢复挑战赛公开数据/train-image/0/1.png',\n",
       " './学术文档篇章级结构恢复挑战赛公开数据/train-image/0/2.png']"
      ]
     },
     "execution_count": 152,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_img[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "id": "cf11f566-ab24-4497-877e-48d363795292",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'text': 'Computationally Efficient Nonlinear Bell Inequalities for Quantum Networks',\n",
       " 'box': [78, 72, 531, 84],\n",
       " 'page': 0,\n",
       " 'is_meta': True,\n",
       " 'parent_id': -1,\n",
       " 'relation': 'contain'}"
      ]
     },
     "execution_count": 200,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "anns = json.load(open(train_json[1]))\n",
    "anns[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "id": "d9766261-aef3-4308-85d6-b0321e0b31fe",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_19762/353416129.py:1: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0\n",
      "Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`\n",
      "  train_img_shape = {x.split('/')[-2] + '/' + x.split('/')[-1][:-4] : Image.open(x).size[:2] for x in tqdm_notebook(train_img)}\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2a12c99b44ee467689950e3209ed56b9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/7043 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_img_shape = {x.split('/')[-2] + '/' + x.split('/')[-1][:-4] : Image.open(x).size[:2] for x in tqdm_notebook(train_img)}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "id": "10327df5-88d3-4abe-8e79-8dd929eb1745",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_19762/410531799.py:1: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0\n",
      "Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`\n",
      "  test_img_shape = {x.split('/')[-2] + '/' + x.split('/')[-1][:-4] : Image.open(x).size[:2] for x in tqdm_notebook(test_img)}\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2d508dc829b3464bb477c9582b96c3c8",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/735 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_img_shape = {x.split('/')[-2] + '/' + x.split('/')[-1][:-4] : Image.open(x).size[:2] for x in tqdm_notebook(test_img)}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "id": "00bee345-ccc6-4c81-8333-c3d19081dade",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "class Rect:\n",
    "    def __init__(self,x,y,w,h):\n",
    "        self.x = x\n",
    "        self.y = y\n",
    "        self.w = w\n",
    "        self.h = h\n",
    "\n",
    "    def dist(self,other):\n",
    "        if abs(self.x - other.x) <= (self.w + other.w):\n",
    "            dx = 0;\n",
    "        else:\n",
    "            dx = abs(self.x - other.x) - (self.w + other.w)\n",
    "\n",
    "        if abs(self.y - other.y) <= (self.h + other.h):\n",
    "            dy = 0;\n",
    "        else:\n",
    "            dy = abs(self.y - other.y) - (self.h + other.h)\n",
    "        \n",
    "        return dx + dy\n",
    "    \n",
    "A = Rect(0,0,2,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "id": "d2029726-e3bf-4e8c-9c81-e27b64d874d9",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_19762/4024546292.py:4: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0\n",
      "Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`\n",
      "  for ann_path in tqdm_notebook(train_json, total=len(train_json)):\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "45bfb52c91e3478aaa48104800e47f40",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/500 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "features = []\n",
    "node_lables = []\n",
    "\n",
    "for ann_path in tqdm_notebook(train_json, total=len(train_json)):\n",
    "    anns = json.load(open(ann_path))\n",
    "    boxs = np.array([x['box'] for x in anns])\n",
    "    \n",
    "    rank_x = rankdata(boxs[:, 0], method='min')\n",
    "    rank_y = rankdata(boxs[:, 1], method='min')\n",
    "    \n",
    "    rank_w = rankdata(boxs[:, 2] - boxs[:, 0], method='min')\n",
    "    rank_h = rankdata(boxs[:, 3] - boxs[:, 1], method='min')\n",
    "    \n",
    "    ann_idx = ann_path.split('/')[-1][:-5]\n",
    "    for idx, ann in enumerate(anns[:]):\n",
    "        img_size = train_img_shape[ann_idx + '/' + str(ann['page'])]\n",
    "        \n",
    "        feat = [\n",
    "            idx, \n",
    "            \n",
    "            # 按照位置排序\n",
    "            rank_x[idx], rank_y[idx], rank_w[idx], rank_h[idx],\n",
    "            \n",
    "            ann['box'][2] - ann['box'][0], # 宽度\n",
    "            ann['box'][3] - ann['box'][1], # 高度\n",
    "            (ann['box'][2] - ann['box'][0]) / (1 + ann['box'][3] - ann['box'][1]), # 长宽比\n",
    "            \n",
    "            ann['box'][0] / img_size[0], ann['box'][2] / img_size[0], # 位置百分比\n",
    "            ann['box'][1] / img_size[1], ann['box'][2] / img_size[1],\n",
    "            \n",
    "            (ann['box'][0] + ann['box'][2]) / 2 / img_size[0], # 中心位置\n",
    "            (ann['box'][1] + ann['box'][2]) / 2 / img_size[1],\n",
    "            \n",
    "            # 统计位置重合的\n",
    "            sum(boxs[idx][0] == boxs[:, 0]),\n",
    "            sum(boxs[idx][1] == boxs[:, 1]),\n",
    "            sum(boxs[idx][2] == boxs[:, 2]),\n",
    "            sum(boxs[idx][3] == boxs[:, 3]),\n",
    "            \n",
    "            len(ann['text']), ann['text'].count(' '), ann['text'].count('.'), # 字符统计\n",
    "            ann['text'].islower(), ann['text'].isupper(), ann['text'].istitle(),\n",
    "            ann['text'].endswith('.'), ann['text'].endswith('?'),\n",
    "            ann['text'].startswith('['),\n",
    "            ann['text'][1:].islower(), ann['text'][1:].isupper(), ann['text'][1:].istitle(),\n",
    "            \n",
    "            (ann['box'][2] - ann['box'][0]) / (len(ann['text']) + 1) # 字符宽度\n",
    "        ]\n",
    "        features.append(feat)\n",
    "        \n",
    "        if ann['parent_id'] == -1:\n",
    "            node_lables.append(ann['relation'] + '-1')\n",
    "        else:\n",
    "            node_lables.append(ann['relation'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 187,
   "id": "e3457103-8fc7-46c7-b336-9d89093078f6",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from lightgbm import LGBMClassifier\n",
    "\n",
    "from sklearn.model_selection import cross_val_predict\n",
    "from sklearn.metrics import classification_report"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "id": "7612d0ef-f658-49b2-99e3-c58dd3422bf2",
   "metadata": {
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.007051 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 4919\n",
      "[LightGBM] [Info] Number of data points in the train set: 253801, number of used features: 31\n",
      "[LightGBM] [Info] Start training from score -0.281981\n",
      "[LightGBM] [Info] Start training from score -3.281686\n",
      "[LightGBM] [Info] Start training from score -2.892079\n",
      "[LightGBM] [Info] Start training from score -1.879368\n",
      "[LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.008091 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 4920\n",
      "[LightGBM] [Info] Number of data points in the train set: 253801, number of used features: 31\n",
      "[LightGBM] [Info] Start training from score -0.281986\n",
      "[LightGBM] [Info] Start training from score -3.281686\n",
      "[LightGBM] [Info] Start training from score -2.892008\n",
      "[LightGBM] [Info] Start training from score -1.879368\n",
      "[LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.026910 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 4922\n",
      "[LightGBM] [Info] Number of data points in the train set: 253802, number of used features: 31\n",
      "[LightGBM] [Info] Start training from score -0.281990\n",
      "[LightGBM] [Info] Start training from score -3.281585\n",
      "[LightGBM] [Info] Start training from score -2.892012\n",
      "[LightGBM] [Info] Start training from score -1.879372\n",
      "[LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.008059 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 4920\n",
      "[LightGBM] [Info] Number of data points in the train set: 253802, number of used features: 31\n",
      "[LightGBM] [Info] Start training from score -0.281990\n",
      "[LightGBM] [Info] Start training from score -3.281585\n",
      "[LightGBM] [Info] Start training from score -2.892012\n",
      "[LightGBM] [Info] Start training from score -1.879372\n",
      "[LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.008276 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 4930\n",
      "[LightGBM] [Info] Number of data points in the train set: 253802, number of used features: 31\n",
      "[LightGBM] [Info] Start training from score -0.281985\n",
      "[LightGBM] [Info] Start training from score -3.281690\n",
      "[LightGBM] [Info] Start training from score -2.892012\n",
      "[LightGBM] [Info] Start training from score -1.879372\n"
     ]
    }
   ],
   "source": [
    "pred = cross_val_predict(\n",
    "    LGBMClassifier(n_estimators=20),\n",
    "    np.array(features),\n",
    "    np.array(node_lables)\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "id": "c4021ce0-e021-4e3e-acce-3c5f5d4900d9",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "     connect       0.90      0.98      0.94    239298\n",
      "     contain       0.62      0.06      0.10     11918\n",
      "   contain-1       0.91      0.84      0.88     17596\n",
      "    equality       0.81      0.66      0.73     48440\n",
      "\n",
      "    accuracy                           0.89    317252\n",
      "   macro avg       0.81      0.64      0.66    317252\n",
      "weighted avg       0.88      0.89      0.87    317252\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(np.array(node_lables), pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "id": "259026ee-1c15-4285-a819-7d1ecfe44434",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.009910 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 4945\n",
      "[LightGBM] [Info] Number of data points in the train set: 317252, number of used features: 31\n",
      "[LightGBM] [Info] Start training from score -0.281987\n",
      "[LightGBM] [Info] Start training from score -3.281647\n",
      "[LightGBM] [Info] Start training from score -2.892025\n",
      "[LightGBM] [Info] Start training from score -1.879370\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LGBMClassifier(n_estimators=200)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMClassifier</label><div class=\"sk-toggleable__content\"><pre>LGBMClassifier(n_estimators=200)</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "LGBMClassifier(n_estimators=200)"
      ]
     },
     "execution_count": 190,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model = LGBMClassifier(n_estimators=200)\n",
    "model.fit(np.array(features), np.array(node_lables))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "id": "6102d226-3f1e-4ffb-accc-9132809ee8ec",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_19762/4117181150.py:3: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0\n",
      "Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`\n",
      "  for ann_path in tqdm_notebook(test_json, total=len(test_json)):\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3989e107b2d04131953b07d1adff7c9b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/50 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_features = []\n",
    "\n",
    "for ann_path in tqdm_notebook(test_json, total=len(test_json)):\n",
    "    anns = json.load(open(ann_path))\n",
    "    boxs = np.array([x['box'] for x in anns])\n",
    "    \n",
    "    rank_x = rankdata(boxs[:, 0], method='min')\n",
    "    rank_y = rankdata(boxs[:, 1], method='min')\n",
    "    \n",
    "    rank_w = rankdata(boxs[:, 2] - boxs[:, 0], method='min')\n",
    "    rank_h = rankdata(boxs[:, 3] - boxs[:, 1], method='min')\n",
    "    \n",
    "    ann_idx = ann_path.split('/')[-1][:-5]\n",
    "    for idx, ann in enumerate(anns[:]):\n",
    "        img_size = test_img_shape[ann_idx + '/' + str(ann['page'])]\n",
    "        \n",
    "        feat = [\n",
    "            idx, \n",
    "            \n",
    "            # 按照位置排序\n",
    "            rank_x[idx], rank_y[idx], rank_w[idx], rank_h[idx],\n",
    "            \n",
    "            ann['box'][2] - ann['box'][0], # 宽度\n",
    "            ann['box'][3] - ann['box'][1], # 高度\n",
    "            (ann['box'][2] - ann['box'][0]) / (1 + ann['box'][3] - ann['box'][1]), # 长宽比\n",
    "            \n",
    "            ann['box'][0] / img_size[0], ann['box'][2] / img_size[0], # 位置百分比\n",
    "            ann['box'][1] / img_size[1], ann['box'][2] / img_size[1],\n",
    "            \n",
    "            (ann['box'][0] + ann['box'][2]) / 2 / img_size[0], # 中心位置\n",
    "            (ann['box'][1] + ann['box'][2]) / 2 / img_size[1],\n",
    "            \n",
    "            # 统计位置重合的\n",
    "            sum(boxs[idx][0] == boxs[:, 0]),\n",
    "            sum(boxs[idx][1] == boxs[:, 1]),\n",
    "            sum(boxs[idx][2] == boxs[:, 2]),\n",
    "            sum(boxs[idx][3] == boxs[:, 3]),\n",
    "            \n",
    "            len(ann['text']), ann['text'].count(' '), ann['text'].count('.'), # 字符统计\n",
    "            ann['text'].islower(), ann['text'].isupper(), ann['text'].istitle(),\n",
    "            ann['text'].endswith('.'), ann['text'].endswith('?'),\n",
    "            ann['text'].startswith('['),\n",
    "            ann['text'][1:].islower(), ann['text'][1:].isupper(), ann['text'][1:].istitle(),\n",
    "            \n",
    "            (ann['box'][2] - ann['box'][0]) / (len(ann['text']) + 1) # 字符宽度\n",
    "        ]\n",
    "        test_features.append(feat)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "id": "9076953c-c8b5-4fdd-b294-6e1997fa93de",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "preds = model.predict(np.array(test_features))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 206,
   "id": "60045e50-3bfb-4fe9-b178-b226559c7781",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_19762/3575856662.py:2: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0\n",
      "Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`\n",
      "  for ann_path in tqdm_notebook(test_json, total=len(test_json)):\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "55eb3d628b45456b823eaadf3441656a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/50 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_ann_index = 0\n",
    "for ann_path in tqdm_notebook(test_json, total=len(test_json)):\n",
    "    anns = json.load(open(ann_path))\n",
    "    \n",
    "    for idx, ann in enumerate(anns):        \n",
    "        if '-1' in preds[test_ann_index]:\n",
    "            anns[idx]['relation'] = 'contain'\n",
    "            anns[idx]['parent_id'] = -1\n",
    "        else:\n",
    "            anns[idx]['relation'] = preds[test_ann_index]\n",
    "            anns[idx]['parent_id'] = idx - 1\n",
    "\n",
    "        \n",
    "        test_ann_index += 1\n",
    "    \n",
    "    with open('./submit/' + ann_path.split('/')[-1], 'w') as up:\n",
    "        json.dump(anns, up)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "id": "9ce5de7e-2625-43c7-a134-e936a6f776ab",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "rm: 无法删除'submit.zip': 没有那个文件或目录\n",
      "  adding: submit/ (stored 0%)\n",
      "  adding: submit/27.json (deflated 78%)\n",
      "  adding: submit/4.json (deflated 74%)\n",
      "  adding: submit/10.json (deflated 77%)\n",
      "  adding: submit/29.json (deflated 76%)\n",
      "  adding: submit/47.json (deflated 76%)\n",
      "  adding: submit/5.json (deflated 77%)\n",
      "  adding: submit/9.json (deflated 75%)\n",
      "  adding: submit/6.json (deflated 81%)\n",
      "  adding: submit/34.json (deflated 76%)\n",
      "  adding: submit/3.json (deflated 78%)\n",
      "  adding: submit/1.json (deflated 78%)\n",
      "  adding: submit/0.json (deflated 77%)\n",
      "  adding: submit/25.json (deflated 78%)\n",
      "  adding: submit/23.json (deflated 76%)\n",
      "  adding: submit/11.json (deflated 75%)\n",
      "  adding: submit/22.json (deflated 77%)\n",
      "  adding: submit/49.json (deflated 77%)\n",
      "  adding: submit/28.json (deflated 73%)\n",
      "  adding: submit/13.json (deflated 78%)\n",
      "  adding: submit/38.json (deflated 79%)\n",
      "  adding: submit/36.json (deflated 74%)\n",
      "  adding: submit/35.json (deflated 78%)\n",
      "  adding: submit/16.json (deflated 75%)\n",
      "  adding: submit/21.json (deflated 76%)\n",
      "  adding: submit/32.json (deflated 76%)\n",
      "  adding: submit/46.json (deflated 77%)\n",
      "  adding: submit/12.json (deflated 78%)\n",
      "  adding: submit/30.json (deflated 79%)\n",
      "  adding: submit/20.json (deflated 77%)\n",
      "  adding: submit/18.json (deflated 75%)\n",
      "  adding: submit/26.json (deflated 77%)\n",
      "  adding: submit/2.json (deflated 77%)\n",
      "  adding: submit/39.json (deflated 76%)\n",
      "  adding: submit/8.json (deflated 78%)\n",
      "  adding: submit/42.json (deflated 78%)\n",
      "  adding: submit/7.json (deflated 76%)\n",
      "  adding: submit/24.json (deflated 74%)\n",
      "  adding: submit/43.json (deflated 76%)\n",
      "  adding: submit/17.json (deflated 76%)\n",
      "  adding: submit/45.json (deflated 78%)\n",
      "  adding: submit/14.json (deflated 73%)\n",
      "  adding: submit/15.json (deflated 80%)\n",
      "  adding: submit/37.json (deflated 75%)\n",
      "  adding: submit/41.json (deflated 76%)\n",
      "  adding: submit/44.json (deflated 77%)\n",
      "  adding: submit/48.json (deflated 77%)\n",
      "  adding: submit/31.json (deflated 75%)\n",
      "  adding: submit/40.json (deflated 79%)\n",
      "  adding: submit/19.json (deflated 77%)\n",
      "  adding: submit/33.json (deflated 76%)\n"
     ]
    }
   ],
   "source": [
    "!\\rm submit.zip\n",
    "!zip -r submit.zip submit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c55103ee-4a96-4e5c-a13b-0b10c6f9e85b",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3.10"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.10"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "003128d996b543fb9b315abd5ddf7201": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "01518885238a4385979f6bb5c0c98567": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_52a380fd82cf4627b8c2c3844ef5b95f",
       "style": "IPY_MODEL_30262e96c53942658b61c633d4570051",
       "value": " 735/735 [00:00&lt;00:00, 16071.55it/s]"
      }
     },
     "016654bb618941f7bae68c068d392a0a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "021947bc0ca349b2b38aab190dfae06c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_3899c18e3fd9438fbb92692b05403abb",
       "style": "IPY_MODEL_a98766f1dc884d1f88f35c936b419b3c",
       "value": "  0%"
      }
     },
     "02dc46de87344972984682dd60121d4b": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "02e6f47a435941aebbf30cb78ea62478": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "02e82b5518964439ba082f42c93f0ee9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "031a297094d54089b6e02f96a170ed3d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_4da2e07d32c74c3ea36efee11dadc931",
       "style": "IPY_MODEL_e23bc6dc5d6644b79324e5a027b42e2a",
       "value": "100%"
      }
     },
     "03624d5134a9423ea7e8dbb1a31deb25": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_472b472b36114af3a2516b1ee5260f11",
       "max": 50,
       "style": "IPY_MODEL_87b9045686cc4c63892415602436c9c2"
      }
     },
     "0439379292e544f78e3cb43e689aec60": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_8a610039883e4da082510b92c6944d6a",
       "style": "IPY_MODEL_f6c5c59a074e4bd3845e4af90d3672a1",
       "value": " 0/500 [00:00&lt;?, ?it/s]"
      }
     },
     "04a89e049cb94d08a17dcf798f8ec648": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "0550d7949c6f4affb8a0b430781d5275": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_e8a397f3b69f415487ba2e54b2d935c7",
       "style": "IPY_MODEL_c714d42a2eac4dfc903244ead1158cfd",
       "value": "  0%"
      }
     },
     "071be80287c146c0b5cc6e73639f7bf1": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_02e82b5518964439ba082f42c93f0ee9",
       "style": "IPY_MODEL_e528d484dac041fe95b8b5435ff26bf3",
       "value": " 0/50 [00:00&lt;?, ?it/s]"
      }
     },
     "0771f54e0a554c62bc3414ed9d5c32ce": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_5e3a130c28b8489c98da61d24108af4b",
       "max": 500,
       "style": "IPY_MODEL_a29810b21eaf4b268b95c25305afedc3",
       "value": 500
      }
     },
     "09e9f6df0df44395979e535f7ceebcf1": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "0a478c4630a0401eb85662eb3eab8926": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_c25f98484c5f4658a17aa867be02228e",
       "style": "IPY_MODEL_778c0f7f1c614a05901c65e1c834adf4",
       "value": " 500/500 [01:21&lt;00:00,  8.61it/s]"
      }
     },
     "0a5241cbe89349808a65e8fcb5b11d3f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "0ab4581723d84d0f8a77a4e5780a3e91": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "0af7b92442934304bba3082383dca124": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "0bce692ebc84455ebd918620a98dff01": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_467e06f340b4471c8cfe4e5fbfe4b46e",
       "max": 500,
       "style": "IPY_MODEL_10942f0242ae42f5944895659941732f"
      }
     },
     "1038fc0f25ca44d7b0b1708bbc39100f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "103c3785016b4f4396946cfeeebe27ee": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "10942f0242ae42f5944895659941732f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "109edaeb412b4f1ea330b61dd92e46b8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "1208ed79c08e40d0816547bebc1c7eec": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "1275dcb6394f407c8ed6d7074078136a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_a1a128df553c4dfa9cdf82f18672f221",
       "max": 500,
       "style": "IPY_MODEL_365cb779ea5d4c4d96be6f5d020a988b"
      }
     },
     "128d0a02caf746fb83bb6f25199154d5": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "128f9ff4f522490cb3dd4af7794818b6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "144074104da0476d9179641ca4b71a2d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_95f18e84fa3a4809b1377092443e7799",
       "style": "IPY_MODEL_17ef1399b19e49779e137a33a13d7f04",
       "value": "  7%"
      }
     },
     "16f51064c34c464ba4b83b250dc5d173": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "17ef1399b19e49779e137a33a13d7f04": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "197f307a859e4669bbccc14ee157e228": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "1a8e6256950f4776ad1630b402464279": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "1ba9b2affa4a43dfa15e7d545b6ff048": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "1c1d041f67354c9f8bef3cb7ac83daf0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_8a27ed3e7b384e2283674a27fdde7ef2",
       "max": 500,
       "style": "IPY_MODEL_aa4f9ad14f064bbd901ab8889216891c"
      }
     },
     "1c8d0937aacd45fca45f7da82e221a8a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "1e98c32adeb74ed29eba36cd08e8b971": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "1eadd50e245d4b0fa9bfe6bd23692c64": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_3e069fb613fb4e2cbf560219244d4174",
        "IPY_MODEL_8142b1f077124361a77c78b69b614f1e",
        "IPY_MODEL_f9442fdb667340148cea8b707ade8a6c"
       ],
       "layout": "IPY_MODEL_9f3aafa663254a4089163d39255fb679"
      }
     },
     "1eef9e2c238b4284bc6179004e7508cb": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "1ff6ba2d06894f288bf74166b0790497": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "20f8ae4e43134c04b18810408d7d28d8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "2138dd5a732d4040a3572ed57f5e4588": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_d37c12f96dfd40a0bac9fb16c151ea71",
       "style": "IPY_MODEL_343c52826fb94177a0925ef1ecf1bb75",
       "value": "100%"
      }
     },
     "21e2f8f9acf84127af019a71f29623d3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_02e6f47a435941aebbf30cb78ea62478",
       "style": "IPY_MODEL_7b12dfb0a66e4b5c8c7bf959c1488127",
       "value": " 0/50 [00:00&lt;?, ?it/s]"
      }
     },
     "2214a8cc644149faa1492c0181276573": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_b083149441f04733843d363dfdda0828",
       "max": 500,
       "style": "IPY_MODEL_d0992d17e64c4a8c9da05177cfa56f8a",
       "value": 2
      }
     },
     "227c0497c9fc496f90f3c809388b17db": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "2313bf4e97ce4a7b98ebee5239781498": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "238e3005c73642628a2c72bae7abaf94": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "29129e18c1ce4e809bdfd62866b416ea": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_4faf6b327be44e2c89ca7590300e49ba",
        "IPY_MODEL_0bce692ebc84455ebd918620a98dff01",
        "IPY_MODEL_8bae8aad4130482383c7a690fa3d699d"
       ],
       "layout": "IPY_MODEL_c291b8165fcf48c5bc80e84afea5961e"
      }
     },
     "29131d1172624bed88922573e37fd2a0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "29df51c4576c4e268f4404e237164125": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_9a702c5b1aca4ee48e3c6c6de4e399a6",
        "IPY_MODEL_ca3bce0106214ac6a24e8545fa9cda43",
        "IPY_MODEL_dfc894c513354dedaa39ac01adfc0318"
       ],
       "layout": "IPY_MODEL_b4946cead89d4d20af4e2b54e021700d"
      }
     },
     "2a12c99b44ee467689950e3209ed56b9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_7b959c35a6bb4dbfa4a1502235dbcf15",
        "IPY_MODEL_dbb12ee33a0c4f9eb7b57195d83c969b",
        "IPY_MODEL_6ff5c63aa35549e38d2b19bc8f8e44b6"
       ],
       "layout": "IPY_MODEL_4b36c26eeb534b49ab4e19b915554443"
      }
     },
     "2b3076948a6c40f8a9d110d3428e7573": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_ca7e0cfb260f4315a2003613793fc957",
        "IPY_MODEL_3ee8cc1ff8c64e5ba03bf150fd053c9b",
        "IPY_MODEL_9bafd0739af64943b32f87bf415dd8be"
       ],
       "layout": "IPY_MODEL_6a9670a7bd024750b6ecc5d5b10a1a23"
      }
     },
     "2c044f36e9f54ad184b0c2ae34045f59": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_940e939b7b36478e8bf42f0513064138",
       "max": 500,
       "style": "IPY_MODEL_afe67d1e9d5a4a3f918e7fe2f563d189",
       "value": 500
      }
     },
     "2ce0bf8b3a31452d8d8dbd8b29aceb2f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "2d508dc829b3464bb477c9582b96c3c8": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_031a297094d54089b6e02f96a170ed3d",
        "IPY_MODEL_83e0701aafa24f1699304d7af62b59be",
        "IPY_MODEL_01518885238a4385979f6bb5c0c98567"
       ],
       "layout": "IPY_MODEL_72340946190e492093bd9a47e19a26d2"
      }
     },
     "2e3cdebccd1a41ca8fd9118e25166f96": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "2e49a7255bc7449cb52e4387cef4ca96": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_e03fbb963c3f4a9d871f47f6f655dacb",
        "IPY_MODEL_be02059356ef43b1baefcef0664fabf5",
        "IPY_MODEL_cd9dc0e43d9647769b00b22ea9e10913"
       ],
       "layout": "IPY_MODEL_bd08f1af0092415ca949b70b6d46f3da"
      }
     },
     "2ecaddddeb4049e1b5100c26a816de8a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "2f5ba7e73eaa42d59fe13b1aec6dea99": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "2f6afd3ee6c740bd8200ce60043d0bf7": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_0af7b92442934304bba3082383dca124",
       "style": "IPY_MODEL_6baa163d0ff54d82ab6513ca856cfdcb",
       "value": " 500/500 [01:21&lt;00:00,  8.69it/s]"
      }
     },
     "30262e96c53942658b61c633d4570051": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "30424bb65c324b779375dd9a88dc6941": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_aa60612e8bad47b9b1f9205cfb2e6a50",
       "style": "IPY_MODEL_8b61fec14271415d95f9165af57baaac",
       "value": " 0/500 [00:00&lt;?, ?it/s]"
      }
     },
     "30444c6b30b44da68c9cffd52ac8f99a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "30ac45ccd4b54592a23a4dc850e69f01": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_2e3cdebccd1a41ca8fd9118e25166f96",
       "style": "IPY_MODEL_a90fac5c2f884ce581d9ec5fac4146b0",
       "value": " 2/500 [00:00&lt;01:42,  4.86it/s]"
      }
     },
     "30ee12206e97448885001b6e777d37d3": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "3106c1a47c9145f79e395712dba213b6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_0a5241cbe89349808a65e8fcb5b11d3f",
       "style": "IPY_MODEL_b7045d402cd34ed4957a4f4ce7ba7cb9",
       "value": "100%"
      }
     },
     "314ece0f590440b587918f885d34d838": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "31a882bccb284b569fc7a62d74d05818": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_2ecaddddeb4049e1b5100c26a816de8a",
       "style": "IPY_MODEL_238e3005c73642628a2c72bae7abaf94",
       "value": " 500/500 [01:21&lt;00:00,  8.06it/s]"
      }
     },
     "3315dc0ac1c54e67a2a41a00ae621a7a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_af5a172caa6b4906972341a7fb98263d",
        "IPY_MODEL_2214a8cc644149faa1492c0181276573",
        "IPY_MODEL_30ac45ccd4b54592a23a4dc850e69f01"
       ],
       "layout": "IPY_MODEL_109edaeb412b4f1ea330b61dd92e46b8"
      }
     },
     "33712e5423034164b21a96eb776a9609": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "343c52826fb94177a0925ef1ecf1bb75": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "3468761b08e64f2caa15a3a231ba5d71": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "349564f7587b49b0a40cbc5e02b002f2": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "35330439d44f421c94c4b4b49d63003e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "365cb779ea5d4c4d96be6f5d020a988b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "36642f21453c48959a0ccd45104fa614": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "3899c18e3fd9438fbb92692b05403abb": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "38f2073f85954b6a808091c053356cab": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_0550d7949c6f4affb8a0b430781d5275",
        "IPY_MODEL_75b3279b1d524a56af462452d915c6f3",
        "IPY_MODEL_c770904564f34bd88a2413174b484626"
       ],
       "layout": "IPY_MODEL_7b28661af1814c7c8e0c2e70f58562a9"
      }
     },
     "3989e107b2d04131953b07d1adff7c9b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_975e96974d2d48f6a3446f9503068db3",
        "IPY_MODEL_7f4b196fb56f4cdfa067ddc22f41b907",
        "IPY_MODEL_f9792c21490b4df194792076f8191a11"
       ],
       "layout": "IPY_MODEL_79658dd5b7594a6d86a16f6a2bdddc6c"
      }
     },
     "3a746891f00b453c837f4ab6e37f7ac0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "3ba62b3ea0b542c380790673b9ebf885": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "3bcbb10296804ee6a60690a1d76ef23b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_c5026a1df8e74000bf6716dbced6d343",
       "max": 735,
       "style": "IPY_MODEL_b8e74da0e92d4a7bb87cadfc56b145a2",
       "value": 735
      }
     },
     "3d15e6d7c1c5483bbe8deca31dc69bcc": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "3d34319987ed45e294dc1bf853fcbfb4": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "3d52fcc8e9fd49e58a0a07dcc282f5b2": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "3d64b49442204b0ea946ee8da3993a41": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_e96a44ac00e444f38797a3e125a3bf92",
       "max": 500,
       "style": "IPY_MODEL_71b11f99d032487f86c70508c0b5c328",
       "value": 500
      }
     },
     "3d709682fcbf45f28e25ec1f69abcb65": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_197f307a859e4669bbccc14ee157e228",
       "style": "IPY_MODEL_5401b5ee6f504ec9a2993f0bfd15f0fa",
       "value": "  0%"
      }
     },
     "3ddb8dc411424bff80e7557ef9360742": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "3e0683a92de244ed8fd3b85e0e0160ae": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "3e069fb613fb4e2cbf560219244d4174": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_a62bf3a24f024ee6957219bc1a2c2503",
       "style": "IPY_MODEL_b226d08adf1b4f86922392bbea42d66c",
       "value": "  0%"
      }
     },
     "3ee8cc1ff8c64e5ba03bf150fd053c9b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_49fc6cd8c9f24a2ebeadd5c32067779f",
       "max": 500,
       "style": "IPY_MODEL_b9667c5a24a64ec4962b741c97ca33e2",
       "value": 46
      }
     },
     "3f5e216ef58f4afba09fae580ed44cf5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_3d15e6d7c1c5483bbe8deca31dc69bcc",
       "style": "IPY_MODEL_16f51064c34c464ba4b83b250dc5d173",
       "value": " 0/500 [00:00&lt;?, ?it/s]"
      }
     },
     "3fd88203e9b945ee862f6f03e8e7766e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "4020514e24d24a4888753d3646494fe5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_b7f23d5e919d4fbc83d5916bd1803754",
        "IPY_MODEL_b34d37c79f1a42de9065efdffca8fa91",
        "IPY_MODEL_f22fa3eed8cd42d5b0374cfd80a115b9"
       ],
       "layout": "IPY_MODEL_92e8159e14e94d29af4052e98e9d1cd9"
      }
     },
     "4351e08b658b43dfbf5e5a311330fad9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_d6e421bd7e30422593fa9e299076555d",
       "style": "IPY_MODEL_c3a0ec59cfa94aa2a9190f4716884e6a",
       "value": " 0/500 [00:00&lt;?, ?it/s]"
      }
     },
     "452ed3907e964951b30780c3eea4cf19": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "45bfb52c91e3478aaa48104800e47f40": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_f2169d338fa4494484f8bdc673b5ab35",
        "IPY_MODEL_2c044f36e9f54ad184b0c2ae34045f59",
        "IPY_MODEL_2f6afd3ee6c740bd8200ce60043d0bf7"
       ],
       "layout": "IPY_MODEL_2313bf4e97ce4a7b98ebee5239781498"
      }
     },
     "467e06f340b4471c8cfe4e5fbfe4b46e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "472b472b36114af3a2516b1ee5260f11": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "473852a763ea4c6b93a6bc69df4c6030": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "47f8b17517af48b8871702d5c5933217": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "4809869d08fd40229de42b91ae863195": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_e77b5e53ce6b4084919df78378fe4869",
        "IPY_MODEL_7413641c52a946b69a4e6e7bb22586df",
        "IPY_MODEL_0439379292e544f78e3cb43e689aec60"
       ],
       "layout": "IPY_MODEL_f47e3a99b2d8494d90983c892fcea6fd"
      }
     },
     "48dd525579f44de4932960c3fd5cb319": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "491298c5dfec4dc0993b22789114cffd": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_d88017e5243e4a53a050ada2e10c3114",
       "style": "IPY_MODEL_ddff5b074cf2422284f8a4c03305ed07",
       "value": "  0%"
      }
     },
     "49fc6cd8c9f24a2ebeadd5c32067779f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "4a98204585514be9a7d69dd560b77024": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_b331433a582f4753b8a918e607a403ec",
       "style": "IPY_MODEL_314ece0f590440b587918f885d34d838",
       "value": "100%"
      }
     },
     "4b36c26eeb534b49ab4e19b915554443": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "4bdbbdc25d6e4bd1996d3297764b1068": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_717ddb222bdf44d8a043c715f0f1f415",
       "style": "IPY_MODEL_c6c79848f93c4449994ba3b51d96f60f",
       "value": " 50/50 [00:00&lt;00:00, 138.45it/s]"
      }
     },
     "4da2e07d32c74c3ea36efee11dadc931": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "4df75a9c6af24ea5bc115ca7140f9ac2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "4f6fe35e4e2d4f9db12d5052827fa689": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "4faf6b327be44e2c89ca7590300e49ba": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_78a3c891a60247fc93d48c5095c1d5c4",
       "style": "IPY_MODEL_bd74d88d5a2f4971b77aa779e79c70bd",
       "value": "  0%"
      }
     },
     "52a380fd82cf4627b8c2c3844ef5b95f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "5401b5ee6f504ec9a2993f0bfd15f0fa": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "545da2704af44953ae7cb8ad86a81d57": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "54a2f5120f4c4baa8a0f94ded5d1c2af": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_cafb719940ed4d589138d813ba9d82a7",
       "max": 500,
       "style": "IPY_MODEL_3fd88203e9b945ee862f6f03e8e7766e"
      }
     },
     "54d8106374cd4c79b0b9628f0af4ebb5": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "55ac83ce34a949568a48b755e443fb01": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_826edf6217ae4a27b378e21f573e9285",
       "style": "IPY_MODEL_ead8ba9e330448648e747398f57ca608",
       "value": " 78/? [00:13&lt;00:00,  7.02it/s]"
      }
     },
     "55eb3d628b45456b823eaadf3441656a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_e714b5fd2fc64b3abda6a2ab96b10742",
        "IPY_MODEL_e5fe5fcfc1b44d12888f4037c1ccced2",
        "IPY_MODEL_4bdbbdc25d6e4bd1996d3297764b1068"
       ],
       "layout": "IPY_MODEL_36642f21453c48959a0ccd45104fa614"
      }
     },
     "582784a9a7154070bf73c41870595110": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_e9278b1b3d794a80ac570359cc8ba519",
       "style": "IPY_MODEL_dd458c7db67a4e8e8ae41b83bbb8c675",
       "value": " 0/50 [00:00&lt;?, ?it/s]"
      }
     },
     "586602ff41ee4ce9a94887789edd50d9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "5d084dcd9d224dfabe7359560c8ce8e6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "5e3a130c28b8489c98da61d24108af4b": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "5e506158c49e43e1a8c66b23141fedb6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_678d78abf52744c2a98d3f0f13c97df9",
        "IPY_MODEL_aa2418aef76a40c0a91eb26028436ac5",
        "IPY_MODEL_21e2f8f9acf84127af019a71f29623d3"
       ],
       "layout": "IPY_MODEL_fb196dce38e84f9e81d486d64c2a475d"
      }
     },
     "5f96a2f4a4d3481983a1fe23d3f13dca": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "6167f237409c4fdbbd1fcfc59d35c0e5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "635b44a5ae9b4c4ab827fca5c30c33b8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "63e00925775f47c7ab48bbd8b191272b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "64ab85f9f9344f48922eae582afb0053": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "64d18d69ef824334b3debbb78f44cd22": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "678d78abf52744c2a98d3f0f13c97df9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_acc9a268bace4fbdb631ab7ac7d5e0ce",
       "style": "IPY_MODEL_a588535c433547c2b5d487f39ace1757",
       "value": "  0%"
      }
     },
     "6815af5d4d0c498e91c509e27acddbad": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "width": "20px"
      }
     },
     "6997839539e3405c9323f3dcc2e15501": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "6a9670a7bd024750b6ecc5d5b10a1a23": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "6baa163d0ff54d82ab6513ca856cfdcb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "6f4fb31c76f645b5b9a59a99d0c633ae": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "6ff5c63aa35549e38d2b19bc8f8e44b6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_989132fbc5f14b448f5b64da12621d3a",
       "style": "IPY_MODEL_84e155865848426bb0eb3677de2ccfde",
       "value": " 7043/7043 [00:00&lt;00:00, 23566.04it/s]"
      }
     },
     "717ddb222bdf44d8a043c715f0f1f415": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "71b11f99d032487f86c70508c0b5c328": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "72075e4a051a49f4afb04b3f9281fce5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_eecd659cea0141c1aaaa629e58174aad",
       "style": "IPY_MODEL_ceb7c2da4b69441a99440b786bf37973"
      }
     },
     "72340946190e492093bd9a47e19a26d2": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "73ef83fd57fe45b2aa7a8dd9ca741229": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "7410d7532b2b4c95a2932f3748ee5311": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "7413641c52a946b69a4e6e7bb22586df": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_de93da1d572f410a8a4c8a1c14a8cfe4",
       "max": 500,
       "style": "IPY_MODEL_003128d996b543fb9b315abd5ddf7201"
      }
     },
     "75b3279b1d524a56af462452d915c6f3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_f1064317a9c74857bb1caf44ebaf88e8",
       "max": 500,
       "style": "IPY_MODEL_d1b9e004218842d3b9611801fc1644a2"
      }
     },
     "778c0f7f1c614a05901c65e1c834adf4": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "77b45dab9b6b4fe3aede1cfa1105e857": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "77c6154038114d1794650588a4bdcb32": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "78a3c891a60247fc93d48c5095c1d5c4": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "796086ad6bed4e94bba2caadea704297": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_ca6f89d6b9bf47909efe51b09d1d9e19",
       "style": "IPY_MODEL_33712e5423034164b21a96eb776a9609",
       "value": "100%"
      }
     },
     "79658dd5b7594a6d86a16f6a2bdddc6c": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "7a97ff70b291494bb5cd33fb6c4a6ca6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "7b12dfb0a66e4b5c8c7bf959c1488127": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "7b28661af1814c7c8e0c2e70f58562a9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "7b959c35a6bb4dbfa4a1502235dbcf15": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_af181339ff224f80bf2c5d4abac1671a",
       "style": "IPY_MODEL_1ff6ba2d06894f288bf74166b0790497",
       "value": "100%"
      }
     },
     "7d38b3f56756473c9ee795f758c7be80": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "7dad3bf1a2b54319902a99a942f16545": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_491298c5dfec4dc0993b22789114cffd",
        "IPY_MODEL_54a2f5120f4c4baa8a0f94ded5d1c2af",
        "IPY_MODEL_30424bb65c324b779375dd9a88dc6941"
       ],
       "layout": "IPY_MODEL_1c8d0937aacd45fca45f7da82e221a8a"
      }
     },
     "7e82200dd94b44049883ead385ee359a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "7eccb38f005a4a5f96d9cafbdecd3c13": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_35330439d44f421c94c4b4b49d63003e",
       "style": "IPY_MODEL_0ab4581723d84d0f8a77a4e5780a3e91",
       "value": " 50/735 [00:10&lt;03:21,  3.40it/s]"
      }
     },
     "7f22581f30db4436887abcd36bac31dd": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "7f4b196fb56f4cdfa067ddc22f41b907": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_b90884cc49db4300b6efdebc881ba387",
       "max": 50,
       "style": "IPY_MODEL_77c6154038114d1794650588a4bdcb32",
       "value": 50
      }
     },
     "8031e8d6c20f443ab2dcda29b026e8b3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "8142b1f077124361a77c78b69b614f1e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_86ad75db8ac5407295149911bea2f29e",
       "max": 50,
       "style": "IPY_MODEL_826cf152a9df4308acc568e036b8ba68"
      }
     },
     "826cf152a9df4308acc568e036b8ba68": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "826edf6217ae4a27b378e21f573e9285": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "83e0701aafa24f1699304d7af62b59be": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_1a8e6256950f4776ad1630b402464279",
       "max": 735,
       "style": "IPY_MODEL_fa2a6b182d9c46468bd403b30515facd",
       "value": 735
      }
     },
     "84da8fc77a084ea38840ab2304949ec6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "84e155865848426bb0eb3677de2ccfde": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "86ad75db8ac5407295149911bea2f29e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "87208038024f4b8f9af5e3b9db357246": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "877b1063b9df483f9fc5e0bb0d55ba61": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_1eef9e2c238b4284bc6179004e7508cb",
       "style": "IPY_MODEL_ab53b6321c6a466291bd1c0ad59b87d3",
       "value": "  0%"
      }
     },
     "87b9045686cc4c63892415602436c9c2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "8a27ed3e7b384e2283674a27fdde7ef2": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "8a610039883e4da082510b92c6944d6a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "8a8ad8400ce342f1939772494540acde": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "8b61fec14271415d95f9165af57baaac": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "8bae8aad4130482383c7a690fa3d699d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_d68ec36f84984879a87948fb4dd409ec",
       "style": "IPY_MODEL_f3653033e7d4468897385b35c31f8bce",
       "value": " 0/500 [00:00&lt;?, ?it/s]"
      }
     },
     "8bea540b843a4e04b087c71e6f8f9e1a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_ed47011feef146a1b2a2e4c3f2cd8ae7",
        "IPY_MODEL_a49a593d1958465582f84160259ef3f8",
        "IPY_MODEL_582784a9a7154070bf73c41870595110"
       ],
       "layout": "IPY_MODEL_3d34319987ed45e294dc1bf853fcbfb4"
      }
     },
     "90178a03cd844aa38107fde65f8bb82e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "90a412b495ea414b933c8efce2f58804": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "92e8159e14e94d29af4052e98e9d1cd9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "940e939b7b36478e8bf42f0513064138": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "950d24b10333440485d456067d879b64": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "95f18e84fa3a4809b1377092443e7799": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "96b364345a574e50913d6e6a6b3d288d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_ffa1c0a1c2a34f4c8f3a9ca9485c7e48",
       "max": 7043,
       "style": "IPY_MODEL_8a8ad8400ce342f1939772494540acde",
       "value": 7043
      }
     },
     "975e96974d2d48f6a3446f9503068db3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_a74a8c243e5b4bf7bb3bb74e84287e27",
       "style": "IPY_MODEL_64ab85f9f9344f48922eae582afb0053",
       "value": "100%"
      }
     },
     "9767b1bf40a143cfba4ff8375c30e8b6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "989132fbc5f14b448f5b64da12621d3a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "99608459d8344fada9c71725da7bc4ba": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_ecd3370baa93428a865e2be659842b8d",
       "max": 500,
       "style": "IPY_MODEL_b0274173d3d44b97ad1c9c44cb80ad39"
      }
     },
     "9a570ff8da40493685d185928f9e17a4": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "9a702c5b1aca4ee48e3c6c6de4e399a6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_c1b7178bdb7644ada9a54b4d7d64f6df",
       "style": "IPY_MODEL_87208038024f4b8f9af5e3b9db357246",
       "value": "  0%"
      }
     },
     "9bafd0739af64943b32f87bf415dd8be": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_64d18d69ef824334b3debbb78f44cd22",
       "style": "IPY_MODEL_c51c37364f8245b0b6b28ac31ac9dec4",
       "value": " 46/500 [00:08&lt;01:24,  5.40it/s]"
      }
     },
     "9c14e9d54fd34c9ba4663622cfa1ce2c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "9c192f005f18428dbad4c368b6128e6f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_877b1063b9df483f9fc5e0bb0d55ba61",
        "IPY_MODEL_99608459d8344fada9c71725da7bc4ba",
        "IPY_MODEL_d749c0c8623f41f7b5d6d29889099b40"
       ],
       "layout": "IPY_MODEL_1208ed79c08e40d0816547bebc1c7eec"
      }
     },
     "9d1adfa6b3f04c3e84bcbc1d96f89de5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_3d709682fcbf45f28e25ec1f69abcb65",
        "IPY_MODEL_1c1d041f67354c9f8bef3cb7ac83daf0",
        "IPY_MODEL_f9f2517684e04868803e0264e8fe0444"
       ],
       "layout": "IPY_MODEL_48dd525579f44de4932960c3fd5cb319"
      }
     },
     "9f3aafa663254a4089163d39255fb679": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "a1a128df553c4dfa9cdf82f18672f221": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "a1b5c2b72ac442ed82756b004580f957": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_452ed3907e964951b30780c3eea4cf19",
       "style": "IPY_MODEL_9c14e9d54fd34c9ba4663622cfa1ce2c",
       "value": "  0%"
      }
     },
     "a1cd68e117bc4571b3a778c4dae90d33": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_021947bc0ca349b2b38aab190dfae06c",
        "IPY_MODEL_1275dcb6394f407c8ed6d7074078136a",
        "IPY_MODEL_4351e08b658b43dfbf5e5a311330fad9"
       ],
       "layout": "IPY_MODEL_77b45dab9b6b4fe3aede1cfa1105e857"
      }
     },
     "a27eb2bfbdb44b75a53adf9f207658ba": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "a29810b21eaf4b268b95c25305afedc3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "a4887d01368644c1a309355ca1d113bf": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "a49a593d1958465582f84160259ef3f8": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_f68f73d33c854bb9a723b352e366a6f4",
       "max": 50,
       "style": "IPY_MODEL_04a89e049cb94d08a17dcf798f8ec648"
      }
     },
     "a4bcceabf19f474eb9da699e9321eba5": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "a588535c433547c2b5d487f39ace1757": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "a62bf3a24f024ee6957219bc1a2c2503": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "a74a8c243e5b4bf7bb3bb74e84287e27": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "a90fac5c2f884ce581d9ec5fac4146b0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "a98766f1dc884d1f88f35c936b419b3c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "a9d4fefd2c8447e1843239042697138c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_a27eb2bfbdb44b75a53adf9f207658ba",
       "max": 735,
       "style": "IPY_MODEL_4df75a9c6af24ea5bc115ca7140f9ac2",
       "value": 50
      }
     },
     "aa2418aef76a40c0a91eb26028436ac5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_7a97ff70b291494bb5cd33fb6c4a6ca6",
       "max": 50,
       "style": "IPY_MODEL_1038fc0f25ca44d7b0b1708bbc39100f"
      }
     },
     "aa4f9ad14f064bbd901ab8889216891c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "aa60612e8bad47b9b1f9205cfb2e6a50": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "ab53b6321c6a466291bd1c0ad59b87d3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "acc9a268bace4fbdb631ab7ac7d5e0ce": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "ad1eba8fbbe24f849186326c8adf3290": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "aeff66baacbe44a7befccf07c172092b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_84da8fc77a084ea38840ab2304949ec6",
       "style": "IPY_MODEL_6997839539e3405c9323f3dcc2e15501",
       "value": " 500/500 [01:20&lt;00:00,  8.67it/s]"
      }
     },
     "af181339ff224f80bf2c5d4abac1671a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "af1d04366e26462bb8ea37e1642b3564": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "af2e12c860dc4af5ab47d6adbfd3e12c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "af5a172caa6b4906972341a7fb98263d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_128d0a02caf746fb83bb6f25199154d5",
       "style": "IPY_MODEL_5f96a2f4a4d3481983a1fe23d3f13dca",
       "value": "  0%"
      }
     },
     "afe67d1e9d5a4a3f918e7fe2f563d189": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "b0274173d3d44b97ad1c9c44cb80ad39": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "b083149441f04733843d363dfdda0828": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "b2027e38b1164cefb0fc971021ee64ad": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "b226d08adf1b4f86922392bbea42d66c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "b25f8c8ea3b34453a27faa4d85aca9be": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_473852a763ea4c6b93a6bc69df4c6030",
       "style": "IPY_MODEL_c95b45092cf94c9bb298866307e19d33",
       "value": " 735/735 [00:03&lt;00:00, 243.67it/s]"
      }
     },
     "b331433a582f4753b8a918e607a403ec": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "b34d37c79f1a42de9065efdffca8fa91": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_a4bcceabf19f474eb9da699e9321eba5",
       "max": 500,
       "style": "IPY_MODEL_7f22581f30db4436887abcd36bac31dd"
      }
     },
     "b373b551a8504658ae6c1dd15de8ccd0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "b452276c57d34a1594d0f51a68eb1a0d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_4a98204585514be9a7d69dd560b77024",
        "IPY_MODEL_3d64b49442204b0ea946ee8da3993a41",
        "IPY_MODEL_dd12fed3b7044c97a8b2f5662e77e42c"
       ],
       "layout": "IPY_MODEL_586602ff41ee4ce9a94887789edd50d9"
      }
     },
     "b4946cead89d4d20af4e2b54e021700d": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "b584f473f97b4149a38d7a1ad2a4bbf7": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "b5e09bda2f1b436cbb03195dc2c89768": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "b6d6b44e30274d3caa144cf7b132da15": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_2138dd5a732d4040a3572ed57f5e4588",
        "IPY_MODEL_96b364345a574e50913d6e6a6b3d288d",
        "IPY_MODEL_bf055e0dbfc240748e64c49eb35ca902"
       ],
       "layout": "IPY_MODEL_02dc46de87344972984682dd60121d4b"
      }
     },
     "b7045d402cd34ed4957a4f4ce7ba7cb9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "b7f23d5e919d4fbc83d5916bd1803754": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_2f5ba7e73eaa42d59fe13b1aec6dea99",
       "style": "IPY_MODEL_b373b551a8504658ae6c1dd15de8ccd0",
       "value": "  0%"
      }
     },
     "b8548bb19ca347cabe9f562165521d93": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_7410d7532b2b4c95a2932f3748ee5311",
       "max": 500,
       "style": "IPY_MODEL_3a746891f00b453c837f4ab6e37f7ac0",
       "value": 500
      }
     },
     "b8e74da0e92d4a7bb87cadfc56b145a2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "b90884cc49db4300b6efdebc881ba387": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "b9161aee271e4d79bbd91f5ab533d3bb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_3106c1a47c9145f79e395712dba213b6",
        "IPY_MODEL_b8548bb19ca347cabe9f562165521d93",
        "IPY_MODEL_31a882bccb284b569fc7a62d74d05818"
       ],
       "layout": "IPY_MODEL_a4887d01368644c1a309355ca1d113bf"
      }
     },
     "b931e8dee3a94782b040b4c30293a16f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "b9667c5a24a64ec4962b741c97ca33e2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "bb9654234af945e0a2dddd75dd635bbe": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_72075e4a051a49f4afb04b3f9281fce5",
        "IPY_MODEL_ccedf341cfcd46d8aa0e40f382e75165",
        "IPY_MODEL_55ac83ce34a949568a48b755e443fb01"
       ],
       "layout": "IPY_MODEL_30ee12206e97448885001b6e777d37d3"
      }
     },
     "bbdb775754e8459cb25ef20da65b22bf": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_1e98c32adeb74ed29eba36cd08e8b971",
       "max": 500,
       "style": "IPY_MODEL_128f9ff4f522490cb3dd4af7794818b6"
      }
     },
     "bd08f1af0092415ca949b70b6d46f3da": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "bd74d88d5a2f4971b77aa779e79c70bd": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "be02059356ef43b1baefcef0664fabf5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_3468761b08e64f2caa15a3a231ba5d71",
       "max": 500,
       "style": "IPY_MODEL_c70945a5185e4594ad5e261587f9040c",
       "value": 500
      }
     },
     "be51785002b74051807c66935f1a8e85": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "bf055e0dbfc240748e64c49eb35ca902": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_db3a5ab0c990471f92530290ee8653ea",
       "style": "IPY_MODEL_da36adee7ff64f6b8dcf7b986b1f8a6a",
       "value": " 7043/7043 [00:28&lt;00:00, 246.40it/s]"
      }
     },
     "c1b7178bdb7644ada9a54b4d7d64f6df": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "c25f98484c5f4658a17aa867be02228e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "c291b8165fcf48c5bc80e84afea5961e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "c3a0ec59cfa94aa2a9190f4716884e6a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "c5026a1df8e74000bf6716dbced6d343": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "c51c37364f8245b0b6b28ac31ac9dec4": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "c62036bc85d545a18df6b25ebe8c9609": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "c63ab188e7b14f5db4d04149e6dd18e6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "c6c79848f93c4449994ba3b51d96f60f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "c70945a5185e4594ad5e261587f9040c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "c714d42a2eac4dfc903244ead1158cfd": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "c770904564f34bd88a2413174b484626": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_b931e8dee3a94782b040b4c30293a16f",
       "style": "IPY_MODEL_3ddb8dc411424bff80e7557ef9360742",
       "value": " 0/500 [00:00&lt;?, ?it/s]"
      }
     },
     "c95b45092cf94c9bb298866307e19d33": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "c97ba74827ab4dd18d53978218fbf6b0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_796086ad6bed4e94bba2caadea704297",
        "IPY_MODEL_3bcbb10296804ee6a60690a1d76ef23b",
        "IPY_MODEL_b25f8c8ea3b34453a27faa4d85aca9be"
       ],
       "layout": "IPY_MODEL_fa3319950b634c0ca686397c3b7deac0"
      }
     },
     "ca3bce0106214ac6a24e8545fa9cda43": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_be51785002b74051807c66935f1a8e85",
       "max": 50,
       "style": "IPY_MODEL_73ef83fd57fe45b2aa7a8dd9ca741229"
      }
     },
     "ca6f89d6b9bf47909efe51b09d1d9e19": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "ca7e0cfb260f4315a2003613793fc957": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_545da2704af44953ae7cb8ad86a81d57",
       "style": "IPY_MODEL_30444c6b30b44da68c9cffd52ac8f99a",
       "value": "  9%"
      }
     },
     "cafb719940ed4d589138d813ba9d82a7": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "cb9b8d55dce04a67b33c3b8b6e3c9618": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_a1b5c2b72ac442ed82756b004580f957",
        "IPY_MODEL_03624d5134a9423ea7e8dbb1a31deb25",
        "IPY_MODEL_071be80287c146c0b5cc6e73639f7bf1"
       ],
       "layout": "IPY_MODEL_20f8ae4e43134c04b18810408d7d28d8"
      }
     },
     "ccedf341cfcd46d8aa0e40f382e75165": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "danger",
       "layout": "IPY_MODEL_6815af5d4d0c498e91c509e27acddbad",
       "max": 1,
       "style": "IPY_MODEL_90178a03cd844aa38107fde65f8bb82e",
       "value": 1
      }
     },
     "cd9dc0e43d9647769b00b22ea9e10913": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_016654bb618941f7bae68c068d392a0a",
       "style": "IPY_MODEL_b5e09bda2f1b436cbb03195dc2c89768",
       "value": " 500/500 [01:18&lt;00:00,  8.37it/s]"
      }
     },
     "ceb7c2da4b69441a99440b786bf37973": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "cf049d0b0df24da58710553025dbe6ff": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "d0992d17e64c4a8c9da05177cfa56f8a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "d1b9e004218842d3b9611801fc1644a2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "d2fd1e8ea80c44ad99cee43882fdfed1": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_f92d56ed6a9042819ee40eb6c92fd42a",
       "max": 500,
       "style": "IPY_MODEL_d66f3410b6f148d69b292c187256b7a7",
       "value": 500
      }
     },
     "d37c12f96dfd40a0bac9fb16c151ea71": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "d5bb58b98c61424ea9308c9b9b755e74": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_144074104da0476d9179641ca4b71a2d",
        "IPY_MODEL_a9d4fefd2c8447e1843239042697138c",
        "IPY_MODEL_7eccb38f005a4a5f96d9cafbdecd3c13"
       ],
       "layout": "IPY_MODEL_635b44a5ae9b4c4ab827fca5c30c33b8"
      }
     },
     "d66f3410b6f148d69b292c187256b7a7": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "d68ec36f84984879a87948fb4dd409ec": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "d6e421bd7e30422593fa9e299076555d": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "d749c0c8623f41f7b5d6d29889099b40": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_54d8106374cd4c79b0b9628f0af4ebb5",
       "style": "IPY_MODEL_2ce0bf8b3a31452d8d8dbd8b29aceb2f",
       "value": " 0/500 [00:00&lt;?, ?it/s]"
      }
     },
     "d7fd97281cdf45fa8f7294ea115686a3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_e1ac4539182342ea961e5dcd6eecf1a8",
        "IPY_MODEL_d2fd1e8ea80c44ad99cee43882fdfed1",
        "IPY_MODEL_aeff66baacbe44a7befccf07c172092b"
       ],
       "layout": "IPY_MODEL_e81b4658f1364825a4eae8f02579f3a9"
      }
     },
     "d88017e5243e4a53a050ada2e10c3114": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "da36adee7ff64f6b8dcf7b986b1f8a6a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "db3a5ab0c990471f92530290ee8653ea": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "dbb12ee33a0c4f9eb7b57195d83c969b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_b2027e38b1164cefb0fc971021ee64ad",
       "max": 7043,
       "style": "IPY_MODEL_6167f237409c4fdbbd1fcfc59d35c0e5",
       "value": 7043
      }
     },
     "dd12fed3b7044c97a8b2f5662e77e42c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_349564f7587b49b0a40cbc5e02b002f2",
       "style": "IPY_MODEL_f4f98870438e4cf38f2c1fbfdf15caf9",
       "value": " 500/500 [00:00&lt;00:00, 653.19it/s]"
      }
     },
     "dd458c7db67a4e8e8ae41b83bbb8c675": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "ddff5b074cf2422284f8a4c03305ed07": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "de93da1d572f410a8a4c8a1c14a8cfe4": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "dfc894c513354dedaa39ac01adfc0318": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_4f6fe35e4e2d4f9db12d5052827fa689",
       "style": "IPY_MODEL_8031e8d6c20f443ab2dcda29b026e8b3",
       "value": " 0/50 [00:00&lt;?, ?it/s]"
      }
     },
     "e03fbb963c3f4a9d871f47f6f655dacb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_ad1eba8fbbe24f849186326c8adf3290",
       "style": "IPY_MODEL_c63ab188e7b14f5db4d04149e6dd18e6",
       "value": "100%"
      }
     },
     "e1ac4539182342ea961e5dcd6eecf1a8": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_b584f473f97b4149a38d7a1ad2a4bbf7",
       "style": "IPY_MODEL_3e0683a92de244ed8fd3b85e0e0160ae",
       "value": "100%"
      }
     },
     "e1eed1b7c5cb48619ce83df9ddb7f15d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "e23bc6dc5d6644b79324e5a027b42e2a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "e528d484dac041fe95b8b5435ff26bf3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "e5f5efe2390c4f8ab4608c990d2d70a8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "e5fe5fcfc1b44d12888f4037c1ccced2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_950d24b10333440485d456067d879b64",
       "max": 50,
       "style": "IPY_MODEL_af2e12c860dc4af5ab47d6adbfd3e12c",
       "value": 50
      }
     },
     "e714b5fd2fc64b3abda6a2ab96b10742": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_5d084dcd9d224dfabe7359560c8ce8e6",
       "style": "IPY_MODEL_09e9f6df0df44395979e535f7ceebcf1",
       "value": "100%"
      }
     },
     "e77b5e53ce6b4084919df78378fe4869": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_e5f5efe2390c4f8ab4608c990d2d70a8",
       "style": "IPY_MODEL_29131d1172624bed88922573e37fd2a0",
       "value": "  0%"
      }
     },
     "e81b4658f1364825a4eae8f02579f3a9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "e835c50cff124e9b9bb92755ac17cc34": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_227c0497c9fc496f90f3c809388b17db",
       "style": "IPY_MODEL_cf049d0b0df24da58710553025dbe6ff",
       "value": "  0%"
      }
     },
     "e8a397f3b69f415487ba2e54b2d935c7": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "e9278b1b3d794a80ac570359cc8ba519": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "e96a44ac00e444f38797a3e125a3bf92": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "ead8ba9e330448648e747398f57ca608": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "ecd3370baa93428a865e2be659842b8d": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "ed47011feef146a1b2a2e4c3f2cd8ae7": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_7d38b3f56756473c9ee795f758c7be80",
       "style": "IPY_MODEL_1ba9b2affa4a43dfa15e7d545b6ff048",
       "value": "  0%"
      }
     },
     "eecd659cea0141c1aaaa629e58174aad": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "ef77f9ad76e2459292ae59177cc51e3c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_e835c50cff124e9b9bb92755ac17cc34",
        "IPY_MODEL_bbdb775754e8459cb25ef20da65b22bf",
        "IPY_MODEL_3f5e216ef58f4afba09fae580ed44cf5"
       ],
       "layout": "IPY_MODEL_3d52fcc8e9fd49e58a0a07dcc282f5b2"
      }
     },
     "f1064317a9c74857bb1caf44ebaf88e8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "f20745522ede4fa695fb16ec1b67d219": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "f2169d338fa4494484f8bdc673b5ab35": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_f20745522ede4fa695fb16ec1b67d219",
       "style": "IPY_MODEL_63e00925775f47c7ab48bbd8b191272b",
       "value": "100%"
      }
     },
     "f22fa3eed8cd42d5b0374cfd80a115b9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_af1d04366e26462bb8ea37e1642b3564",
       "style": "IPY_MODEL_e1eed1b7c5cb48619ce83df9ddb7f15d",
       "value": " 0/500 [00:00&lt;?, ?it/s]"
      }
     },
     "f3653033e7d4468897385b35c31f8bce": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "f47e3a99b2d8494d90983c892fcea6fd": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "f4f98870438e4cf38f2c1fbfdf15caf9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "f68f73d33c854bb9a723b352e366a6f4": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "f6c5c59a074e4bd3845e4af90d3672a1": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "f92d56ed6a9042819ee40eb6c92fd42a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "f9442fdb667340148cea8b707ade8a6c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_9a570ff8da40493685d185928f9e17a4",
       "style": "IPY_MODEL_6f4fb31c76f645b5b9a59a99d0c633ae",
       "value": " 0/50 [00:00&lt;?, ?it/s]"
      }
     },
     "f96951abe448409f86fe2c453e58e746": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_f9bac984f2054c7281ab4525db41e667",
        "IPY_MODEL_0771f54e0a554c62bc3414ed9d5c32ce",
        "IPY_MODEL_0a478c4630a0401eb85662eb3eab8926"
       ],
       "layout": "IPY_MODEL_c62036bc85d545a18df6b25ebe8c9609"
      }
     },
     "f9792c21490b4df194792076f8191a11": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_47f8b17517af48b8871702d5c5933217",
       "style": "IPY_MODEL_9767b1bf40a143cfba4ff8375c30e8b6",
       "value": " 50/50 [00:09&lt;00:00,  4.45it/s]"
      }
     },
     "f9bac984f2054c7281ab4525db41e667": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_7e82200dd94b44049883ead385ee359a",
       "style": "IPY_MODEL_3ba62b3ea0b542c380790673b9ebf885",
       "value": "100%"
      }
     },
     "f9f2517684e04868803e0264e8fe0444": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_90a412b495ea414b933c8efce2f58804",
       "style": "IPY_MODEL_103c3785016b4f4396946cfeeebe27ee",
       "value": " 0/500 [00:00&lt;?, ?it/s]"
      }
     },
     "fa2a6b182d9c46468bd403b30515facd": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "fa3319950b634c0ca686397c3b7deac0": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "fb196dce38e84f9e81d486d64c2a475d": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "ffa1c0a1c2a34f4c8f3a9ca9485c7e48": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {}
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
